package com.sname.car.security;

import com.sname.car.common.constants.Constants;

/**
 * Created By  醉美柳舞之众星捧月
 *
 * @author songx
 * @date 2018/9/23 14:22
 */
public class Test_RSA_Main {

    public static final String KEY_ALGORITHM = "RSA";

    private static final String PUBLIC_KEY = Constants.PUBLIC_KEY_RSA;

    /**
     * 私钥字符串  通过读文件来获取
     */
    private static String PRIVATE_KEY = "";

    public static void main(String[] args) throws Exception {
//        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(KEY_ALGORITHM);
//        keyPairGenerator.initialize(1024);
//        KeyPair keyPair = keyPairGenerator.generateKeyPair();
//        PublicKey publicKey = keyPair.getPublic();
//        PrivateKey privateKey = keyPair.getPrivate();
//        // 将公钥或者私钥的对象通过BASE64进行转码成二进制
//        System.out.println(Base64Util.encode(publicKey.getEncoded()));
//        // 公钥一般放在客户端   私钥一般放在服务器上面的
//        System.out.println(Base64Util.encode(privateKey.getEncoded()));

        String data = "老王又来了..";
        /** 明文 + RSA的公钥对 = 密文 **/    /** 真实的明文是AES通过"16位key+最终明文=的密文"  此处只是上面的data**/
        byte[] enResult = RSAUtil.encryptByPublicKey(data.getBytes("UTF-8"), PUBLIC_KEY);
        System.out.println(enResult.toString());
        /** 明文 = 密文 + RSA的私钥对 **/
        byte[] deResult = RSAUtil.decryptByPrivateKey(enResult);
        System.out.println("私钥解密成功：" + new String(deResult, "UTF-8"));
    }
}
